05 Para saber mais: string v String e number vs Number

Próxima Atividade
  • Mudar o player
  • Sugerir melhoria

Durante nossas aulas, é provável que vocês tenha reparado que o Visual Studio Code, durante o processo de autocomplete, nos permite escolhermos além dos tipos string e number, os tipos String e Number. Há diferença?

Os tipos que começam em minúsculo equivalem a declaração literal. Vejamos um exemplo:

let nome = 'Flávio';
let idade = 20;

O TypeScript infere o tipo, sendo assim, a sintaxe é a mesma coisa que:

let nome: string = 'Flávio';
let idade: number = 20;

Se fizermos typeof nas duas variáveis temos como resultado string e number respectivamente:

let nome: string = 'Flávio';
console.log(typeof(nome));  // string
let idade: number = 20; 
console.log(typeof(idade));// number

Contudo, JavaScript permite criar strings e números não como literais, mas como objetos:

let nome = new String('Flávio');
console.log(typeof(nome)); // Object
let idade = new Number(20);
console.log(typeof(idade)); // Object

Qual a diferença?

Os tipos string e number são literais e guardam um valor primitivo. Contudo, se tentarmos chamar algum método em variáveis declaradas com esses tipos, eles são empacotados automaticamente (auto-boxing) para String e Number respectivamente.

É por isso que esse código funciona:

let nome = 'Flávio';
nome.replace('/vio/', 'vião'); // faz auto-boxing

Dessa forma, TypeScript permite distinguir entre o tipo literal e o tipo objeto. Contudo, a boa prática é usarmos os tipos literais number e string, porque em JavaScript new String() e new Number() são raramente usados.

Tirar dúvida Próxima Atividade
ícone TypeScript parte 1: Evoluindo seu Javascript

TypeScript parte 1: Evoluindo seu Javascript

100%
Aula02 de 05

Benefícios da tipagem estática

Atividades 5 de 13

  • 01 Capturando os dados do formulário 10min
  • 02 O tipo implícito any 06min
  • 03 Sobre o tipo any
  • 04 Tipando explicitamente 04min
  • 05 Para saber mais: string v String e number vs Number
  • 06 Um problema não esperado 04min
  • 07 Casting explícito 08min
  • 08 Sobre casting explícito
  • 09 Adequando valores aos tipos 04min
  • 10 Para saber mais: input type Date no Microsoft Edge e no Firefox
  • 11 Sobre o código
  • 12 Revisão 05min
  • 13 Consolidando seu conhecimento

Aulas

Outros Links

Fórum Trocar Curso
Gravatar de Marcos Katsumi Kay

Marcos Katsumi Kay 34.0k xp

Logo da Alura